package org.nterlearning.datamodel.catalog.model;

import com.liferay.portal.kernel.bean.AutoEscape;
import com.liferay.portal.model.BaseModel;
import com.liferay.portal.model.CacheModel;
import com.liferay.portal.service.ServiceContext;

import com.liferay.portlet.expando.model.ExpandoBridge;

import java.io.Serializable;

import java.util.Date;
import java.util.Locale;
import java.util.Map;

/**
 * The base model interface for the Component service. Represents a row in the &quot;CATALOG_Component&quot; database table, with each column mapped to a property of this class.
 *
 * <p>
 * This interface and its corresponding implementation {@link org.nterlearning.datamodel.catalog.model.impl.ComponentModelImpl} exist only as a container for the default property accessors generated by ServiceBuilder. Helper methods and all application logic should be put in {@link org.nterlearning.datamodel.catalog.model.impl.ComponentImpl}.
 * </p>
 *
 * @author Brian Wing Shun Chan
 * @see Component
 * @see org.nterlearning.datamodel.catalog.model.impl.ComponentImpl
 * @see org.nterlearning.datamodel.catalog.model.impl.ComponentModelImpl
 * @generated
 */
public interface ComponentModel extends BaseModel<Component> {
    /*
     * NOTE FOR DEVELOPERS:
     *
     * Never modify or reference this interface directly. All methods that expect a component model instance should use the {@link Component} interface instead.
     */

    /**
     * Returns the primary key of this component.
     *
     * @return the primary key of this component
     */
    public long getPrimaryKey();

    /**
     * Sets the primary key of this component.
     *
     * @param primaryKey the primary key of this component
     */
    public void setPrimaryKey(long primaryKey);

    /**
     * Returns the component ID of this component.
     *
     * @return the component ID of this component
     */
    public long getComponentId();

    /**
     * Sets the component ID of this component.
     *
     * @param componentId the component ID of this component
     */
    public void setComponentId(long componentId);

    /**
     * Returns the company ID of this component.
     *
     * @return the company ID of this component
     */
    public long getCompanyId();

    /**
     * Sets the company ID of this component.
     *
     * @param companyId the company ID of this component
     */
    public void setCompanyId(long companyId);

    /**
     * Returns the group ID of this component.
     *
     * @return the group ID of this component
     */
    public long getGroupId();

    /**
     * Sets the group ID of this component.
     *
     * @param groupId the group ID of this component
     */
    public void setGroupId(long groupId);

    /**
     * Returns the feed reference ID of this component.
     *
     * @return the feed reference ID of this component
     */
    public long getFeedReferenceId();

    /**
     * Sets the feed reference ID of this component.
     *
     * @param feedReferenceId the feed reference ID of this component
     */
    public void setFeedReferenceId(long feedReferenceId);

    /**
     * Returns the component iri of this component.
     *
     * @return the component iri of this component
     */
    @AutoEscape
    public String getComponentIri();

    /**
     * Sets the component iri of this component.
     *
     * @param componentIri the component iri of this component
     */
    public void setComponentIri(String componentIri);

    /**
     * Returns the updated date of this component.
     *
     * @return the updated date of this component
     */
    public Date getUpdatedDate();

    /**
     * Sets the updated date of this component.
     *
     * @param updatedDate the updated date of this component
     */
    public void setUpdatedDate(Date updatedDate);

    /**
     * Returns the language of this component.
     *
     * @return the language of this component
     */
    @AutoEscape
    public String getLanguage();

    /**
     * Sets the language of this component.
     *
     * @param language the language of this component
     */
    public void setLanguage(String language);

    /**
     * Returns the href of this component.
     *
     * @return the href of this component
     */
    @AutoEscape
    public String getHref();

    /**
     * Sets the href of this component.
     *
     * @param href the href of this component
     */
    public void setHref(String href);

    /**
     * Returns the full text href of this component.
     *
     * @return the full text href of this component
     */
    @AutoEscape
    public String getFullTextHref();

    /**
     * Sets the full text href of this component.
     *
     * @param fullTextHref the full text href of this component
     */
    public void setFullTextHref(String fullTextHref);

    /**
     * Returns the title of this component.
     *
     * @return the title of this component
     */
    @AutoEscape
    public String getTitle();

    /**
     * Sets the title of this component.
     *
     * @param title the title of this component
     */
    public void setTitle(String title);

    /**
     * Returns the description of this component.
     *
     * @return the description of this component
     */
    @AutoEscape
    public String getDescription();

    /**
     * Sets the description of this component.
     *
     * @param description the description of this component
     */
    public void setDescription(String description);

    /**
     * Returns the copyright of this component.
     *
     * @return the copyright of this component
     */
    public String getCopyright();

    /**
     * Returns the localized copyright of this component in the language. Uses the default language if no localization exists for the requested language.
     *
     * @param locale the locale of the language
     * @return the localized copyright of this component
     */
    @AutoEscape
    public String getCopyright(Locale locale);

    /**
     * Returns the localized copyright of this component in the language, optionally using the default language if no localization exists for the requested language.
     *
     * @param locale the local of the language
     * @param useDefault whether to use the default language if no localization exists for the requested language
     * @return the localized copyright of this component. If <code>useDefault</code> is <code>false</code> and no localization exists for the requested language, an empty string will be returned.
     */
    @AutoEscape
    public String getCopyright(Locale locale, boolean useDefault);

    /**
     * Returns the localized copyright of this component in the language. Uses the default language if no localization exists for the requested language.
     *
     * @param languageId the ID of the language
     * @return the localized copyright of this component
     */
    @AutoEscape
    public String getCopyright(String languageId);

    /**
     * Returns the localized copyright of this component in the language, optionally using the default language if no localization exists for the requested language.
     *
     * @param languageId the ID of the language
     * @param useDefault whether to use the default language if no localization exists for the requested language
     * @return the localized copyright of this component
     */
    @AutoEscape
    public String getCopyright(String languageId, boolean useDefault);

    @AutoEscape
    public String getCopyrightCurrentLanguageId();

    @AutoEscape
    public String getCopyrightCurrentValue();

    /**
     * Returns a map of the locales and localized copyrights of this component.
     *
     * @return the locales and localized copyrights of this component
     */
    public Map<Locale, String> getCopyrightMap();

    /**
     * Sets the copyright of this component.
     *
     * @param copyright the copyright of this component
     */
    public void setCopyright(String copyright);

    /**
     * Sets the localized copyright of this component in the language.
     *
     * @param copyright the localized copyright of this component
     * @param locale the locale of the language
     */
    public void setCopyright(String copyright, Locale locale);

    /**
     * Sets the localized copyright of this component in the language, and sets the default locale.
     *
     * @param copyright the localized copyright of this component
     * @param locale the locale of the language
     * @param defaultLocale the default locale
     */
    public void setCopyright(String copyright, Locale locale,
        Locale defaultLocale);

    public void setCopyrightCurrentLanguageId(String languageId);

    /**
     * Sets the localized copyrights of this component from the map of locales and localized copyrights.
     *
     * @param copyrightMap the locales and localized copyrights of this component
     */
    public void setCopyrightMap(Map<Locale, String> copyrightMap);

    /**
     * Sets the localized copyrights of this component from the map of locales and localized copyrights, and sets the default locale.
     *
     * @param copyrightMap the locales and localized copyrights of this component
     * @param defaultLocale the default locale
     */
    public void setCopyrightMap(Map<Locale, String> copyrightMap,
        Locale defaultLocale);

    /**
     * Returns the display width of this component.
     *
     * @return the display width of this component
     */
    public int getDisplayWidth();

    /**
     * Sets the display width of this component.
     *
     * @param displayWidth the display width of this component
     */
    public void setDisplayWidth(int displayWidth);

    /**
     * Returns the display height of this component.
     *
     * @return the display height of this component
     */
    public int getDisplayHeight();

    /**
     * Sets the display height of this component.
     *
     * @param displayHeight the display height of this component
     */
    public void setDisplayHeight(int displayHeight);

    /**
     * Returns the create date of this component.
     *
     * @return the create date of this component
     */
    public Date getCreateDate();

    /**
     * Sets the create date of this component.
     *
     * @param createDate the create date of this component
     */
    public void setCreateDate(Date createDate);

    /**
     * Returns the removed of this component.
     *
     * @return the removed of this component
     */
    public boolean getRemoved();

    /**
     * Returns <code>true</code> if this component is removed.
     *
     * @return <code>true</code> if this component is removed; <code>false</code> otherwise
     */
    public boolean isRemoved();

    /**
     * Sets whether this component is removed.
     *
     * @param removed the removed of this component
     */
    public void setRemoved(boolean removed);

    /**
     * Returns the removed date of this component.
     *
     * @return the removed date of this component
     */
    public Date getRemovedDate();

    /**
     * Sets the removed date of this component.
     *
     * @param removedDate the removed date of this component
     */
    public void setRemovedDate(Date removedDate);

    /**
     * Returns the version of this component.
     *
     * @return the version of this component
     */
    @AutoEscape
    public String getVersion();

    /**
     * Sets the version of this component.
     *
     * @param version the version of this component
     */
    public void setVersion(String version);

    /**
     * Returns the version date of this component.
     *
     * @return the version date of this component
     */
    public Date getVersionDate();

    /**
     * Sets the version date of this component.
     *
     * @param versionDate the version date of this component
     */
    public void setVersionDate(Date versionDate);

    /**
     * Returns the price of this component.
     *
     * @return the price of this component
     */
    public double getPrice();

    /**
     * Sets the price of this component.
     *
     * @param price the price of this component
     */
    public void setPrice(double price);

    /**
     * Returns the price unit of this component.
     *
     * @return the price unit of this component
     */
    @AutoEscape
    public String getPriceUnit();

    /**
     * Sets the price unit of this component.
     *
     * @param priceUnit the price unit of this component
     */
    public void setPriceUnit(String priceUnit);

    /**
     * Returns the price terms of this component.
     *
     * @return the price terms of this component
     */
    @AutoEscape
    public String getPriceTerms();

    /**
     * Sets the price terms of this component.
     *
     * @param priceTerms the price terms of this component
     */
    public void setPriceTerms(String priceTerms);

    /**
     * Returns the price expiration of this component.
     *
     * @return the price expiration of this component
     */
    @AutoEscape
    public String getPriceExpiration();

    /**
     * Sets the price expiration of this component.
     *
     * @param priceExpiration the price expiration of this component
     */
    public void setPriceExpiration(String priceExpiration);

    public boolean isNew();

    public void setNew(boolean n);

    public boolean isCachedModel();

    public void setCachedModel(boolean cachedModel);

    public boolean isEscapedModel();

    public Serializable getPrimaryKeyObj();

    public void setPrimaryKeyObj(Serializable primaryKeyObj);

    public ExpandoBridge getExpandoBridge();

    public void setExpandoBridgeAttributes(ServiceContext serviceContext);

    public Object clone();

    public int compareTo(Component component);

    public int hashCode();

    public CacheModel<Component> toCacheModel();

    public Component toEscapedModel();

    public String toString();

    public String toXmlString();
}
